#include<stdio.h>
void pailie(long long a[],int low,long long high)
{
	int i,j;
	i=low,j=high;
	if(j<i){
	return;}
	while(i!=j)
	{
	while(a[j]>=a[low]&&i<j)
	{
		j--;
	}
	while(a[i]<=a[low]&&i<j)
	{
		i++;
	}
	if(i<j)
	{
		int te;
		te=a[j];
		a[j]=a[i];
		a[i]=te;
	
	}
	}
	int ss=a[i];
	a[i]=a[low];
	a[low]=ss;
	pailie(a,low,i-1);
	pailie(a,i+1,high);
} 
int main()
{
	long long m,n;
	long long Y=0;
	scanf("%lld %lld",&m,&n);
	long long a[100010]={0};
	for(long long i=0;i<m;i++)
	{
		scanf("%lld",&a[i]);
	}
	a[m]=1000010;
	pailie(a,0,m-1);
	while(n--)
	{
		long long x;
		scanf("%lld",&x);
		long long l=0,s=m,mid;
		while(l<s)
		{
			mid=(l+s)/2;
			if(a[mid]>=x)  s=mid;
			else  l=mid+1;
		}
		long long y=a[l]-x;
		if(l>0&&y>x-a[l-1])
		{
			y=x-a[l-1];
		}
		Y=Y+y;
	}
	printf("%lld",Y);
	return 0;
}
